Limitaciones de la Ley de Amdahl
En el pasado se creia que fue un limite fatal al futuro de paralelismo. Sin embargo,
su demostración tiene que ver con los pasos de un algorítmo específico y no toma en consideración que otro algorítmo con mas paralelismo podria existir.
trata el tamaño de problema como una constante, pero en la práctica la proporción secuencial de un programa decrece con el tamaño,
Otras Limitaciones
Ignora ?(n,p)
Sobre estima el speedup que se puede lograr
El Efecto Amdahl
En la práctica, el tiempo de comunicación ?(n,p) tiene complexidad menor que ?(n)/p (i.e., el tiempo para la parte paralela)
Cuando n crece, ?(n)/p domina a ?(n,p)
Cuando n crece,
La proporción secuencial decrece
Speedup crece
Illustration of Amdahl Effect
(Gp:) n = 100
(Gp:) n = 1,000
(Gp:) n = 10,000
Speedup
Processors
Resumen de la Ley de Amdahl
Trata tamaño como constante
Demuestra como el tiempo de ejecutación decrece cuando el número de procesadores crece
Profesionales en computación paralela no creean que la ley de Amdahl limita el futuro de computación paralela, como originalmente creian.
La Métrica Isoeficiencia
Un sistema paralelo se define como un programa paralelo que se está ejecutando en una computadora paralela
La escalabilidad de un sistema paralelo es una medida de su habilidad para mejorar rendimiento cuando se aumenta el número de procesadores es
Un sistema escalable mantiene su eficiencia cuando se aumenta la cantidad de procesadores
Isoeficiencia:Una manera para medir escalabilidad
Para Derivar la Relación de Isoeficiencia
Determinar los gastos generales
Substituir gastos generales en la ecuación de speedup
Sustituir T(n,1) = ?(n) + ?(n). Presumir eficiencia constante.
Relación de Isoeficiencia
Para Derivar la Relación de Isoeficiencia (cont)
Para mantener el mismo nivel de eficiencia cuando crece la cantidad de procesadores, hay que aumentar n para que se cumpla
La Función de Escalabilidad
Supongamos que la relación de isoeficiencia es n ? f(p)
Sea M(n) la cantidad de memoria que se requiere para un problema de tamaño n
M(f(p))/p indica como el uso de memoria por procesador tiene que crecer para mantener la misma eficiencia
M(f(p))/p se llama la función de escalabilidad
El Significado de la Función de Escalabilidad
Para mantener la eficiencia cuando crece p, tenemos que aumentar n
El tamaño de problema máximo está limitado por la cantidad de memoria disponible, que es lineal en p
La función de escalabilidad muestra como el uso de memoria por procesador tiene que crecer para mantener eficiencia
Si la función de escalabilidad es constante, el sistema paralelo es perfectamente escalable
Ejemplo : El Algoritmo de Floyd
Complexidad Secuencial: ?(n3)
Complexidad Paralela: ?(n3/p)
Tiempo de comunicaciones: ?(n2log p)
Gastos Paralelismo: T0(n,p) = ?(pn2log p)
compute_shortest_paths
void compute_shortest_paths (int id, int p, dtype **a, int n)
{
int i, j, k;
int offset; /* Local index of broadcast row */
int root; /* Process controlling row to be bcast */
int *tmp; /* Holds the broadcast row */
tmp = (dtype *) malloc (n * sizeof(dtype));
for (k = 0; k < n; k++)
{ root = BLOCK_OWNER(k, p, n);
if (root == id)
{ offset = k – BLOCK_LOW(id, p, n);
for (j = 0; j < n; j++)
tmp[j] = a[offset][j];
}
MPI_Bcast (tmp, n, MPI_TYPE, root, MPI_COMM_WORLD);
for (i = 0; i < BLOCK_SIZE(id, p, n); i++)
for (j = 0; j < n; j++)
a[i][j] = MIN(a[i][j], a[i][k] + tmp[j]);
}
free (tmp);
}
El Algoritmo de Floyd (cont)
Relación de Isoeficiencian3 ? C(p n2 log p) ? n ? C p log p
M(n) = n2
El sistema no tiene buena escabilidad
Página anterior | Volver al principio del trabajo | Página siguiente |